Hybrid Debugging of Java Programs

نویسندگان

  • Christian Hermanns
  • Herbert Kuchen
چکیده

Until today the most common technique to debug Java programs is trace debugging. In this work we present two different debugging approaches for Java: declarative debugging, which has its origins in the area of functional and logic programming, and omniscient debugging, which is basically an extension of trace debugging. To benefit from the advantages of both techniques we have integrated them into a single hybrid debugger called JHyde. We use JHyde to debug an erroneous merge sort algorithm and mention important aspects of its implementation. Furthermore, we show that the efficiency of the declarative debugging method can be significantly improved by a new debugging strategy.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

HAVE: Detecting Atomicity Violations via Integrated Dynamic and Static Analysis

The reality of multi-core hardware has made concurrent programs pervasive. Unfortunately, writing correct concurrent programs is difficult. Atomicity violation, which is caused by concurrent executions unexpectedly violating the atomicity of a certain code region, is one of the most common concurrency errors. However, atomicity violation bugs are hard to find using traditional testing and debug...

متن کامل

JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs

Debugging concurrent Java programs is a difficult task because of multiple control flows and inherent nondeterminism. It requires techniques not provided by traditional debuggers such as tracing, visualization, and automated error analysis. Therefore, we have developed the JaVis environment for visualizing and debugging concurrent Java programs. The information about a running program is collec...

متن کامل

JavaTA: A Logic-based Debugger for Java

This paper presents a logic based approach to debugging Java programs. In contrast with traditional debugging we propose a debugging methodology for Java programs using logical queries on individual execution states and also over the history of execution. These queries were arrived at by a systematic study of errors in object-oriented programs in our earlier research. We represent the salient e...

متن کامل

JRastro: A Trace Agent for Debugging Multithreaded and Distributed Java Programs

Program tracing is one of the most used techniques to debug parallel and distributed programs. In this technique, events are recorded in trace files during the execution of the program for post mortem visualization of its behavior. This article describes JRastro, a trace agent capable of tracing Java programs. The agent was designed to cover three key features: to be transparent to the applicat...

متن کامل

Debugging With an Enriched Dependency-based Model or How to Distinguish Between Aliasing and Value Assignment

This paper introduces a new model for debugging of Java programs. This model is based on previous functional dependency models that have been developed for the same purpose. In contrast the model makes not only use of dependency information but also of aliasing information. Therefore, the results are better for a large class of examples. The model is basically a qualitative model where values o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011